package cn.bugstack.domain.activity.service;

import cn.bugstack.domain.activity.model.valobj.ActivitySkuStockKeyVO;

import java.util.List;

/**
 * @Title: ISkuStock
 * @Author tong
 * @Package cn.bugstack.domain.activity.service
 * @Date 2025/6/10 15:54
 * @description: 活动sku库存处理接口
 */
public interface IRaffleActivitySkuStockService {
    /**
     * 获取活动sku库存消耗队列
     *
     * @return 奖品库存key信息
     * @throws InterruptedException
     */
    ActivitySkuStockKeyVO takeQueueValue(Long sku) throws InterruptedException;

    /**
     * 清空队列
     */
    void clearQueueValue();

    /**
     * 延迟队列+任务趋势更新活动sku库存
     *
     * @param sku 活动商品
     */
    void updateActivitySkuStock(Long sku);

    /**
     * 缓存库存消耗完毕 清空数据库库存
     *
     * @param sku
     */
    void clearActivitySkuStock(Long sku);

    List<Long> querySkuList();
}
